/*--------------------------------------------------------------------------
【程序设计】
----------------------------------------------------------------------------
题目：定义一个函数用于删除一个字符串中指定起始位置（下标）和长度的子字符串
     （使用while循环）。在主函数中调用函数实现删除指定字符串任务。
      运行程序，输入字符串及删除条件，输出删除后的结果。

      程序运行结果如样张所示。
----------------------------------------------------------------------------
注意：请勿改动程序中的其他内容。
---------------------------------------------------------------------------*/
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

int del(char *s, int position, int length) {
    // 计算删除子字符串后的新字符串的起始位置
    int i = position + length;
    int strlength = strlen(s); // 获取字符串的长度

    if (position < 0 || length <= 0 || position > strlength || length > strlength - position) {
        return -1;
    }
    /**********Program**********/
    while (s[i] != '\0') {
       s[position] = s[i];
        i++;
    }

    s[position] = '\0';
    /**********  End  **********/
    return 0;
}

int main() {
    char str[50];
    int pos, len, flag;
    printf("输入待删除的字符串：");
    scanf("%s", str);
    printf("请输入要删除的起始位置:");
    scanf("%d", &pos);
    printf("请输入要删除的子字符串长度:");
    scanf("%d", &len);
    flag = del(str, pos, len);
    if (flag)
        printf("输入有误!");
    else
        printf("删除后的字符串:%s\n", str);
    system("pause");
    return 0;
}
